﻿on_game_start = {
	on_actions = { ccu_startup }
}

on_game_start_after_lobby = {
	on_actions = { 
		delay = { days = 1 }
		ccu_startup_debug 
	}
}

ccu_startup = {	
	effect = { every_culture_global = { ccu_initialize_culture = yes } }
}

on_culture_created = {
	on_actions = { ccu_culture_created }
}

ccu_culture_created = {	
	effect = { 
		# Primary option. Faster to get the variable from the parent culture than to run the full initialization.
		every_parent_culture = {
			limit = { has_same_culture_language = prev }
			prev = { 
				set_variable = { name = language_group value = prev.var:language_group } 
				set_variable = { name = language_family value = prev.var:language_family }
				set_variable = { name = language_union value = prev.var:language_union }
			}			
		}
		every_parent_culture = {
			limit = { has_same_culture_heritage = prev }
			prev = { 
				set_variable = { name = heritage_group value = prev.var:heritage_group } 
				set_variable = { name = heritage_family value = prev.var:heritage_family }
			}			
		}
		
		# Failsafe in case the heritage or language of the divergent culture doesn't match either parent
		# I didn't think that was possible but it was observed to happen in-game
		if = {
			limit = { NOT = { has_variable = heritage_group } }
			ccu_initialize_heritage_group = yes
			ccu_initialize_heritage_family = yes
		}
		if = { 
			limit = { NOT = { has_variable = language_group } }
			ccu_initialize_language_group = yes
			ccu_initialize_language_family = yes
			ccu_initialize_language_union = yes
		}
	}
}

ccu_startup_debug = {
	effect = {
		every_culture_global = {
			if = {
				limit = { NOT = { has_variable = heritage_group } }
				save_scope_as = problem_culture
				every_player = {
					send_interface_message = {
						type = event_steward_task_bad
						title = ccu_debug_culture_heritage_group
						desc = ccu_debug_culture_heritage_group_desc
					}
				}
			}
			else_if = {
				limit = { NOT = { has_variable = heritage_family } }
				save_scope_as = problem_culture
				every_player = {
					send_interface_message = {
						type = event_steward_task_bad
						title = ccu_debug_culture_heritage_family
						desc = ccu_debug_culture_heritage_family_desc
					}
				}
			}
			if = {
				limit = { NOT = { has_variable = language_group } }
				save_scope_as = problem_culture
				every_player = {
					send_interface_message = {
						type = event_steward_task_bad
						title = ccu_debug_culture_language_group
						desc = ccu_debug_culture_language_group_desc
					}
				}
			}
			else_if = {
				limit = { NOT = { has_variable = language_family } }
				save_scope_as = problem_culture
				every_player = {
					send_interface_message = {
						type = event_steward_task_bad
						title = ccu_debug_culture_language_family
						desc = ccu_debug_culture_language_family_desc
					}
				}
			}
			else_if = {
				limit = { NOT = { has_variable = language_union } }
				save_scope_as = problem_culture
				every_player = {
					send_interface_message = {
						type = event_steward_task_bad
						title = ccu_debug_culture_language_union
						desc = ccu_debug_culture_language_union_desc
					}
				}
			}
		}
	}
}